package com.kaifamiao.demo.d0726;


/**
 * this 表示当前对象（实例）, 谁调用就是谁
 *   this.字段  实例属性   this.方法() 实例方法
 *   this() 表示调用类的构造方法, 只能在构造方法中使用, 并且是 第一句代码
 */
public class Person {

    String name;

    int age;

    char gender;

    boolean hasMeta;


    public Person(){

    }

    public Person(String name){
        this.name = name;
    }

    public Person(String name, int age){
        this(name);
        this.age = age;
    }


    /**
     * 能否继续
     * @param person
     * @return
     *   都没有对象
     *   年龄比你大 5 或者 小 5
     *   性别 一定是异性
     */
    public boolean canNext(Person person){
        // this --> you   person --> other

        boolean f1 = this.isSameGender(person);

        if (f1){
            return false;
        }

        // 是不是都没有对象
        if (this.hasMeta || person.hasMeta){
            System.out.println("有对象不行");
            return false;
        }

        // 年龄
        if ( !(person.age >= this.age - 5 && person.age <= this.age + 5)){
            System.out.println("年龄差距太大");
            return false;
        }

        return true;
    }

    public boolean isSameGender(Person person){
        if (this.gender == person.gender){
            System.out.println("你们是同性，不能继续了");
            return true;
        }
        return false;
    }

    public static void staticMethod(){

    }

    public void show(){
        System.out.println(this.name + " show");
    }


}
